const { CustomErr, UnknowErr, SYS_ERROR_CODE } = require('./code')
const { NODE_ENV } = require('../config/default')
const { APP_ENV } = require('../consts/system')
const { errLog } = require('../middleware/log/log')
// 错误统一处理
const errHandler = (err, ctx) => {
  if (err instanceof CustomErr) {
    // 记录系统内部错误日志
    if (err.code === SYS_ERROR_CODE) {
      errLog(ctx, err)
    }
    // CustomErr 里有 error这个方法
    const env = NODE_ENV || 'prod'
    if (env !== APP_ENV.DEV) {
      err.data = null
      delete err.stack
    }
    ctx.body = err.toString()
  } else {
    // 记录错误日志
    errLog(ctx, err)
    ctx.body = UnknowErr.toString()
  }
}

module.exports = errHandler
